package org.example.erat.service;

import org.example.erat.dto.ClassDTO;

import java.util.List;

/**
 * 班级服务接口
 */
public interface ClassService {

    /**
     * 创建班级
     * @param classDTO 班级DTO
     * @return 创建后的班级DTO
     */
    ClassDTO createClass(ClassDTO classDTO);

    /**
     * 更新班级
     * @param id 班级ID
     * @param classDTO 班级DTO
     * @return 更新后的班级DTO
     */
    ClassDTO updateClass(Long id, ClassDTO classDTO);

    /**
     * 删除班级
     * @param id 班级ID
     */
    void deleteClass(Long id);

    /**
     * 获取班级
     * @param id 班级ID
     * @return 班级DTO
     */
    ClassDTO getClass(Long id);

    /**
     * 获取所有班级
     * @return 班级DTO列表
     */
    List<ClassDTO> getAllClasses();

    /**
     * 根据课程ID获取班级列表
     * @param courseId 课程ID
     * @return 班级DTO列表
     */
    List<ClassDTO> getClassesByCourse(Long courseId);
}
